package cn.com.surker.lab.service;

import cn.com.surker.lab.entity.LabExpendUpload;
import cn.com.surker.lab.vo.LabExpendUploadVo;
import cn.com.surker.spring.RestResultDto;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
* <p>
    * 技术上传配合表 服务类
    * </p>
*
* @author admin
* @since 2024-10-25
*/
public interface LabExpendUploadService extends IService<LabExpendUpload> {


	List<LabExpendUpload> queryByIndentId(String dbCode, Long orgId, Long indentId, Long lineId);

    /**
     * 任务单配合比分页
     * @param searchVal
     * @param startTime 任务单创建时间
     * @param endTime
     * @param proType 任务单生产状态 0待供 1：正供 2 供毕 3 技术暂供 4 生产暂供
     * @param isUpload 是否上传 0未上传 1已上传
     * @param offset
     * @param limit
     * @return
     */
    IPage findByIndentPage(String searchVal, String startTime, String endTime, Integer proType,
                           Integer castType, Integer isUpload, Long strengthId, Integer offset, Integer limit);
    /**
     * 上传配合比记录
     * @param indentId 任务单
     * @param lineIds
     * @param isUpload
     * @return
     */
    List<Map<String, Object>> findUploadData(Long indentId, String lineIds, String lineCodes, String isUpload);

    /**
     * 根据任务单查询上传记录
     * @param indentId
     * @return
     */
    List<Map<String, Object>> findByIndent(String dbCode, Long indentId);

    /**
     * 保存上传信息
     * @param expendUpload
     * @return
     */
    RestResultDto saveUpload(LabExpendUpload expendUpload);

    /**
     * 修改上传信息
     * @param expendUpload
     * @return
     */
    RestResultDto updateUpload(LabExpendUpload expendUpload);

    /**
     * 修改上传信息状态
     * @param id
     * @param status
     * @param creator
     * @param remark
     * @return
     */
    RestResultDto updateStatus(Long id, Integer status, String creator, String remark);

	/**
	 * 根据配合比编码查询数据
	 *
	 * @param lineId 生产线
	 * @param code   配合比编号
	 * @return
	 */
	LabExpendUpload queryByCode(Long lineId, String code);

    /**
     * 根据任务单ID查询上传记录
     * @param indentId
     * @return
     */
	List<LabExpendUploadVo> findIndentHistory(String dbCode, Long indentId);

    /**
     * 根据强度等级ID查询上传记录
     * @return
     */
    List<LabExpendUploadVo> findStrengthHistory(String dbCode, Long lineId, Long strengthId);

    /**
     * 查询生产线的保存配比记录
     * @return
     */
    List<LabExpendUpload> findIndentOrLine(String dbCode,Long indentId, String lineIds);

    /**
     * 集中保存配合比
     * @param indentId
     * @param lineIds 需要上传生产线
     * @param uploadIndentIds 需要上传的任务单
     * @return
     */
    List<LabExpendUpload> saveBatchUpload(String dbCode,Long indentId, String lineIds, Long orgId,
                                          String uploadIndentIds, String orgName, String creator);
}
